<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // "use strict";

  // console.log( this );
  // console.log( this === window );

  // fn没有明确隶属对象，直接执行fn，内的this指向window（非严格）
  // function fn(){
    //   console.log(this);
    //   console.log(this === window);
    // }
  // fn();
  


  // var obj = {
  //   fn:function (){
  //     // fun没有明确隶属对象，直接执行fun，内的this指向window（非严格）
  //     function fun(){
  //       console.log(this)
  //       console.log(this === window)
  //     }
  //     fun();
  //   }
  // }
  // // fn有明确隶属对象
  // obj.fn();


  var obj = {
    fn:function(){
      console.log(this)
      console.log(this === window)
    }
  }
  
  var obj2 = {
    fn:function( a ){
      // a没有明确隶属对象，直接执行a，内的this指向window（非严格）
      a();
    }
  }
  // obj.fn没有直接执行，而是作为参数传给了另一个函数，另一个函数通过参数，执行了obj.fn，此时this会丢失到默认绑定
  obj2.fn( obj.fn );
  
</script>
</html>